#[allow(dead_code)]

fn main() {
    {
        // * 变量和可变性
        let mut x = 5;
        // ! variables is immutable by default
        println!("The value of x is {x}");
        x = 6;
        println!("The value of x is {x}");
    }
    {
        // * 常量
        const MAX_POINTS: u32 = 100_000;
    }
    {
        // * 隐藏变量
        let x = 5;

        let x = x + 1;
        {
            let x = x * 2;
            println!("The value of x in the inner scope is: {}", x);
        }
        println!("The value of x is: {}", x);
    }
    {
        /*
         * mut 与隐藏的另一个区别是，当再次使用 let 时，实际上创建了一个新变量，
         * 我们可以改变值的类型，并且复用这个名字。
         */
        let spaces = "    ";
        let spaces = spaces.len();
    }
}
